In recent years, resistance varying memory devices employing a variable resistor as a memory element are attracting attention as candidates to succeed flash memory. The resistance varying memory devices are assumed here to include not only the narrowly-defined resistance varying memory (ReRAM: Resistive RAM), but also the likes of phase change memory (PCRAM: Phase Change RAM). In ReRAM, a transition metal oxide is used as a recording layer to store a resistance state of the transition metal oxide in a non-volatile manner. In PCRAM, chalcogenide or the like is used as a recording layer to utilize resistance information of a crystalline state (conductor) and an amorphous state (insulator).
There are known to be two kinds of operation modes in memory cells of a resistance varying memory device. In one, referred to as bipolar type, the polarity of applied voltage is switched to set a high-resistance state and a low-resistance state. In the other, referred to as unipolar type, the voltage value and voltage application time are controlled, thus allowing the high-resistance state and the low-resistance state to be set without switching the polarity of applied voltage.
This is explained as follows taking the case of unipolar type ReRAM as an example. Write of data to the memory cell is performed by applying a certain voltage to the variable resistor for a short time. This causes the variable resistor to change from the high-resistance state to the low-resistance state. This operation to change the variable resistor from the high-resistance state to the low-resistance state is hereinafter referred to as a setting operation. On the other hand, erase of data in the memory cell is performed by applying a certain voltage to the variable resistor for a long time, the certain voltage being lower than that applied during the setting operation, and the variable resistor being in the low-resistance state subsequent to the setting operation. This causes the variable resistor to change from the low-resistance state to the high-resistance state. This operation to change the variable resistor from the low-resistance state to the high-resistance state is hereinafter referred to as a resetting operation. The memory cell adopts, for example, the high-resistance state as a stable state (reset state), and, in the case of binary data storage, write of data is performed by the setting operation in which the reset state is changed to the low-resistance state.
Now, there is a possibility of an excessive current flowing in the memory cell immediately after the memory cell has been changed to the low-resistance state. There is a risk that such an excessive current causes, for example, a mistaken resetting operation where the memory cell on which the setting operation has once been completed returns to the reset state, or destruction of the memory cell. Accordingly, a value of the current flowing in the memory cell must be provided with an upper limit (compliance current).
However, in memory cells employing a variable resistor, it is difficult to uniformize characteristics of the variable resistors. Hence the resistance value of the variable resistors before and after completion of the setting operation varies according to the memory cells. Consequently, it is not possible to perform the setting operation properly while preventing mistaken resetting operations and destruction of memory cells simply by setting an identical compliance current for all memory cells. Thus, a technique for appropriately setting the upper limit of the current value on a memory cell-by-memory cell basis is desired.
In addition, the variable resistor in a resistance varying memory immediately after manufacture has an extremely high resistance value and is in a state where its resistance value cannot be easily changed. Accordingly, a forming operation for applying a high voltage to the variable resistor is executed. This results in the resistance value of the variable resistor being capable of transition between the high-resistance state and the low-resistance state, thereby rendering the variable resistor operable as a memory cell.
However, there is a problem, in conventional resistance varying memory, that variation of resistance value among the plurality of variable resistors after the forming operation is large. And, if this variation is large, various subsequent operations such as write (setting) become difficult.